home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-02
/
tpwin31.zip
/
CPL.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1992-04-06
|
5KB
|
164 lines
{*******************************************************}
{ }
{ Turbo Pascal for Windows Run-time Library }
{ Windows 3.1 API Interface Unit }
{ Control panel extension DLL definitions }
{ }
{ Copyright (c) 1992 Borland International }
{ }
{*******************************************************}
{******************************************************************************
* General rules for being installed in the Control Panel:
*
* 1) The DLL must export a function named CPlApplet which will handle
* the messages discussed below.
* 2) If the applet needs to save information in CONTROL.INI minimize
* clutter by using the application name [MMCPL.appletname].
* 2) If the applet is refrenced in CONTROL.INI under [MMCPL] use
* the following form:
* ...
* [MMCPL]
* uniqueName=c:\mydir\myapplet.dll
* ...
*
*
* The order applet DLL's are loaded by CONTROL.EXE is:
*
* 1) MAIN.CPL is loaded from the windows system directory.
*
* 2) Installable drivers that are loaded and export the
* CplApplet() routine.
*
* 3) DLL's specified in the [MMCPL] section of CONTROL.INI.
*
* 4) DLL's named *.CPL from windows system directory.
*
}
{
* CONTROL.EXE will answer this message and launch an applet
*
* WM_CPL_LAUNCH
*
* wParam - window handle of calling app
* lParam - LPSTR of name of applet to launch
*
* WM_CPL_LAUNCHED
*
* wParam - TRUE/FALSE if applet was launched
* lParam - NULL
*
* CONTROL.EXE will post this message to the caller when the applet returns
* (ie., when wParam is a valid window handle)
*
}
unit Cpl;
interface
uses WinTypes;
const
wm_CPL_Launch = wm_User+1000;
wm_CPL_Launched = wm_User+1001;
{ A function prototype for CPlApplet() }
type
TApplet_Proc = function(hWndCpl: HWnd; msg: Word;
lParam1, lParam2: Longint): Longint;
{ The data structure CPlApplet() must fill in. }
type
PCPLInfo = ^TCPLInfo;
TCPLInfo = record
idIcon: Integer; { icon resource id, provided by CPlApplet() }
idName: Integer; { name string res. id, provided by CPlApplet() }
idInfo: Integer; { info string res. id, provided by CPlApplet() }
lData: Longint; { user defined data }
end;
type
PNewCPLInfo = ^TNewCPLInfo;
TNewCPLInfo = record
dwSize: Longint; { similar to the commdlg }
dwFlags: Longint;
dwHelpContext: Longint; { help context to use }
lData: Longint; { user defined data }
Icon: HIcon; { icon to use, this is owned by CONTROL.EXE (may be deleted) }
szName: array[0..31] of Char; { short name }
szInfo: array[0..63] of Char; { long name (status line) }
szHelpFile: array[0..127] of Char; { path to help file to use }
end;
{ The messages CPlApplet() must handle: }
const
cpl_Init = 1;
{ This message is sent to indicate CPlApplet() was found. }
{ lParam1 and lParam2 are not defined. }
{ Return TRUE or FALSE indicating whether the control panel should proceed. }
const
cpl_GetCount = 2;
{ This message is sent to determine the number of applets to be displayed. }
{ lParam1 and lParam2 are not defined. }
{ Return the number of applets you wish to display in the control }
{ panel window. }
const
cpl_Inquire = 3;
{ This message is sent for information about each applet. }
{ lParam1 is the applet number to register, a value from 0 to }
{ (CPL_GETCOUNT - 1). lParam2 is a far ptr to a CPLINFO structure. }
{ Fill in CPL_INFO's idIcon, idName, idInfo and lData fields with }
{ the resource id for an icon to display, name and description string ids, }
{ and a long data item associated with applet #lParam1. }
const
cpl_Select = 4;
{ This message is sent when the applet's icon has been clicked upon. }
{ lParam1 is the applet number which was selected. lParam2 is the }
{ applet's lData value. }
const
cpl_DblClk = 5;
{ This message is sent when the applet's icon has been double-clicked }
{ upon. lParam1 is the applet number which was selected. lParam2 is the }
{ applet's lData value. }
{ This message should initiate the applet's dialog box. }
const
cpl_Stop = 6;
{ This message is sent for each applet when the control panel is exiting. }
{ lParam1 is the applet number. lParam2 is the applet's lData value. }
{ Do applet specific cleaning up here. }
const
cpl_Exit = 7;
{ This message is sent just before the control panel calls FreeLibrary. }
{ lParam1 and lParam2 are not defined. }
{ Do non-applet specific cleaning up here. }
const
cpl_NewInquire = 8;
{ this is the same as CPL_INQUIRE execpt lParam2 is a pointer to a }
{ NEWCPLINFO structure. this will be sent before the CPL_INQUIRE }
{ and if it is responed to (return != 0) CPL_INQUIRE will not be sent }
implementation
end.